--------------------------------------------------------------------------------
Changelog:
--------------------------------------------------------------------------------

V2.1.11.8 (2015-10-23)
----------------------
 - RCX-799: [Kernel] Two timers may cause a deadlock if their ulPeriod value gets reset to 0 - Closed (Fixed)
 - RCX-800: [Kernel] Idle task causes deadlock/exception on freeing memory of a deleted task - Closed (Fixed)
 - RCX-801: [Middleware] Bootmedia status not shown in system status (ulSystemStatus) - Closed (Fixed)

V2.1.11.7 (2015-08-28)
----------------------
 - RCX-798: [General] Add new version of SHM API to support handling of device controlled modes - Closed (Fixed)

V2.1.11.6 (2015-07-28)
----------------------
 - RCX-793: [Middleware] Writing MAC address to security memory via device data provider or via RCX_SET_MAC_ADDRESS_REQ (with store permanent bit set) corrupts zone1 of security memory - Closed (Fixed)

V2.1.11.5 (2015-07-08)
----------------------
 - RCX-791: [Kernel] Eventgroups may loose an event if multiple events are signalled in independent calls - Closed (Fixed)
 - RCX-792: [General] Add new device class RCX_HW_DEV_CLASS_GW_NETTAP_151 - Closed (Fixed)

V2.1.11.4 (2015-05-19)
----------------------
 - RCX-763: [Kernel] Deleting an kernel object (e.g. Semaphore) while creating another object in different task may result in a defective object list and cause crash / malfunction - Closed (Fixed)
 - RCX-764: [Kernel] Eventgroups don't automatically reset event after successful wait - Closed (Fixed)
 - RCX-765: [Middleware] Mid_FatFlushFile does not update the file information (file size) correctly - Closed (Fixed)
 - RCX-766: [General] TLR_Types.h does not compile using -wundef -werror warning levels - Closed (Fixed)
 - RCX-770: [Module Loader] NXO's containing untyped symbols in R_ARM_THM_CALL relocations may crash - Closed (Fixed)
 - RCX-772: [Kernel] rX_SysSleepTask returns wrong value if timeout was elapsed (should be 0) - Closed (Fixed)
 - RCX-778: [Drivers] [netX10,51,52] Drv_TimGetTime does not correctly return elapsed time from timers 0/1 (ARM_TIMER) - Closed (Fixed)
 - RCX-782: [Middleware] [DPM] RCX_SYS_STATUS_OK is not automatically set in SystemStatusBlock - Closed (Fixed)
 - RCX-787: [General] Add new protocoll class definitions - Closed (Fixed)
 - RCX-788: [Drivers] Add new communication class - Closed (Fixed)

V2.1.11.3 (2015-02-26)
----------------------
 - RCX-762: [Module Loader] NXO may crash basefirmware when linked against thumb version of libgcc depending on internal file offset - Closed (Fixed)

V2.1.11.2 (2015-02-03)
----------------------
 - RCX-758: [Module Loader] NXO's which contain arm.exidx sections fail to relocate correctly and may cause crash - Closed (Fixed)
 - RCX-760: [Middleware] DIAG_INFO_GET_COMMON_STATE_REQ (0x2F00) is not handled anymore and returns with RCX_E_UNKNOWN_COMMAND - Closed (Fixed)

V2.1.11.1 (2015-01-16)
----------------------
 - RCX-756: [Kernel] Trying to suspend a task while scheduler is locked may schedule wrong task once - Closed (Fixed)
 - RCX-757: [General] Undo packing of TLR_PACKET_HEADER_T/TLR_UUID_T to avoid alignment issues - Closed (Fixed)

V2.1.11.0 (2014-12-16)
----------------------
 - RCX-503: [Middleware] Restrict file operations of special "." (single dot) and ".." (double dot) entries - Closed (Fixed)
 - RCX-722: [Drivers] [netX10/50/51] - SPI transfer fails for high frequencies (>= 5MHz) if the second spi bus works with frequencies lower than 5 MHz - Closed (Fixed)
 - RCX-723: [Drivers] Drv_MMC rejects SD cards which do not respond to mandatory command CMD1 (SEND_OP_COND) - Closed (Fixed)
 - RCX-725: [Middleware] Creating a directory or file on a corrupt volume may keep the volume locked - Closed (Fixed)
 - RCX-726: [Middleware] Device data provider: Support notifications to signal changes in database - Closed (Fixed)
 - RCX-727: [Middleware] Device data provider: Introduce module interface for default provider to support multiple data sources - Closed (Fixed)
 - RCX-730: [Middleware] Support for installable packet handler  - Closed (Fixed)
 - RCX-731: [Drivers] Allow configuration of UART baud rates up to 3.125 MBaud - Closed (Fixed)
 - RCX-732: [General] [netX10/50/51/52] Speed up .bss clearing in chip initialization code for larger .bss sections (Init_netx.S) - Closed (Fixed)
 - RCX-733: [Middleware] Mid_FatDeleteAll does not delete any files / directories but returns RX_OK - Closed (Fixed)
 - RCX-735: [Drivers] SysTime driver is not thread save - Closed (Fixed)
 - RCX-736: [Middleware] Add packet service to request kernel debug information (memory dump, kernel objects etc.) - Closed (Fixed)
 - RCX-737: [Drivers] Add Support for Numonyx M45PE16 serial flash - Closed (Fixed)
 - RCX-739: [Drivers] Provide Api to retrieve Flash Information - Closed (Fixed)
 - RCX-744: [Middleware] Mid_FatDeinitialize does not close open files on the volume - Closed (Fixed)
 - RCX-745: [Drivers] Trying to change PHY registers directly after Drv_PhyInitialize does not work correctly when fPowerDown is set to TRUE - Closed (Fixed)
 - RCX-748: [Middleware] Mid_FatDelete unintentionally permits deletion of files in use - Closed (Fixed)
 - RCX-749: [Middleware] Mid_FatFlush does not work - Closed (Fixed)
 - RCX-750: [Module Loader] Module library lacks trampolines for MD5 hash function routines - Closed (Fixed)
 - RCX-751: [Middleware] Mid_FatFlushFile may cause data loss if file size has changed since last finished file operation - Closed (Fixed)
 - RCX-754: [Middleware] DPM reports undefined RTC type if RTC was not explicitly configured at startup - Closed (Fixed)

V2.1.10.0 (2014-05-20)
----------------------
 - RCX-715: [Middleware] Introduce service RCX_FILE_RENAME_REQ to support file renaming - Closed (Fixed)
 - RCX-716: [Kernel] Timer task may stall if timer callback routine invokes blocking kernel service - Closed (Fixed)
 - RCX-718: [Kernel] Kernel Timer Tick wrap-around (after ~49days) causes timers to get corrupted and not execute at all (single shot) or execute faster than expected (reload timers) - Closed (Fixed)

V2.1.9.1 (2014-05-20)
---------------------
 - RCX-718: [Kernel] Kernel Timer Tick wrap-around (after ~49days) causes timers to get corrupted and not execute at all (single shot) or execute faster than expected (reload timers) - Closed (Fixed)

V2.1.8.1 (2014-05-20)
---------------------
 - RCX-718: [Kernel] Kernel Timer Tick wrap-around (after ~49days) causes timers to get corrupted and not execute at all (single shot) or execute faster than expected (reload timers) - Closed (Fixed)

V2.1.7.1 (2014-05-20)
---------------------
 - RCX-718: [Kernel] Kernel Timer Tick wrap-around (after ~49days) causes timers to get corrupted and not execute at all (single shot) or execute faster than expected (reload timers) - Closed (Fixed)

V2.1.6.1 (2014-05-20)
---------------------
 - RCX-718: [Kernel] Kernel Timer Tick wrap-around (after ~49days) causes timers to get corrupted and not execute at all (single shot) or execute faster than expected (reload timers) - Closed (Fixed)

V2.1.5.1 (2014-05-20)
---------------------
 - RCX-718: [Kernel] Kernel Timer Tick wrap-around (after ~49days) causes timers to get corrupted and not execute at all (single shot) or execute faster than expected (reload timers) - Closed (Fixed)

V2.1.9.0 (2014-03-05)
---------------------
 - RCX-703: [Kernel] Cycles created with rX_TimCreateCycle do not work - Closed (Fixed)
 - RCX-704: [Drivers] Drv_EddSendCbk with a NULL callback does not work correctly and may result in data abort / non-working Ethernetports - Closed (Fixed)
 - RCX-708: [Kernel] rX_MemCreateSharedMemory() does not work - Closed (Fixed)
 - RCX-709: [Drivers] 2-Port-Switch may not work in 10MBit/Half-Duplex mode, as it shares the rpu/tpu microcode with standard MAC - Closed (Fixed)
 - RCX-710: [Kernel] rX_SemWaitForSemaphoreCount always returns RX_OK, even when returned count is 0 - Closed (Fixed)
 - RCX-711: [Drivers] UDP Frames with UDP checksum 0 are not passed to callbacks registered with Drv_EddRegisterUdpCb() - Closed (Fixed)
 - RCX-712: [Drivers] [netX51] - USB2JTAG is enabled per default and may disturb attached JTAG debuggers - Closed (Fixed)
 - RCX-713: [Drivers] [netX51/52] - DPM settings (DPM_IF_CFG and address comparator in DPM_ADDR_CFG) configured in RX_HIF_SET_T are not setup correctly - Closed (Fixed)
 - RCX-714: [Middleware] Allow quick-formatting of FAT volumes - Closed (Fixed)

V2.1.8.0 (2014-01-09)
---------------------
 - RCX-675: [Kernel] Software timer may not elapse if it is created in early startup phase within context of a task with priority > TSK_PRIO_DEF_RX_TIMER - Closed (Fixed)
 - RCX-676: [General] Provide device class definitions for netSMART T51 / netSCADA T52 / netSAFETY 51 / netSAFETY 52 - Closed (Fixed)
 - RCX-700: [General] Provide device class definitions for NPLC J500 - Closed (Fixed)
 - RCX-702: [Kernel] rX_QueSend returns RX_TIMEOUT (instead of RX_QUE_FULL) when trying to put a packet into a queue that is full and timeout is set to RX_FINITE - Closed (Fixed)

V2.1.7.0 (2013-10-10)
---------------------
 - RCX-653: [Drivers] Initialization of Drv_Pfl always fails - Closed (Fixed)
 - RCX-655: [Drivers] Update CFI detection to support AMD/Intel-command-set compatible flashes from various manufacturers - Closed (Fixed)
 - RCX-656: [Kernel] Static tasks may wakeup in wrong order after all Tasks have called rX_SysSetTaskInitialized (lasts until next scheduler call) - Closed (Fixed)
 - RCX-658: [Module Loader] Valid NXO/ELF files may be rejected with error TLR_E_MODULE_SPECIAL_SYM_PARSE_ERROR - Closed (Fixed)
 - RCX-663: [Kernel] If configuration for SYSTIMER is missing, an invalid cycletime is used - Closed (Fixed)
 - RCX-665: [Module Loader] Jump table lacks essential kernel and driver funtions - Closed (Fixed)
 - RCX-667: [Drivers] Some MMC4.x cards might not be recognized correctly due to non-compliant response to CMD8 (SD_SEND_IF_COND/MMC_SEND_EXTCSD) - Closed (Fixed)
 - RCX-668: [Drivers] License check does not work when being called from multiple tasks with the same priority (e.g. dual channel firmware) - Closed (Fixed)
 - RCX-672: [Middleware] System status block reports security memory error if device data is configured via rX_DdpSetBaseDeviceData() - Closed (Fixed)

V2.1.6.0 (2013-06-25)
---------------------
 - RCX-643: [General] rX_Config.h provides external definitions for CAN/PROFIBUS XC Codes, but these shall be supplied by fieldbus stacks - Closed (Fixed)
 - RCX-645: [Drivers] Drv_Int does not detect double defined IRQ priorities - Closed (Fixed)
 - RCX-647: [Drivers] Drv_MMC may reject some / old MMC cards, that need longer for reset after CMD1 (SEND_OPCOND) - Closed (Fixed)

V2.1.5.0 (2013-04-30)
---------------------
 - RCX-494: [Drivers] [Feature, netX51/50/10] Drv_Spi: Minimize/Eliminate pauses between 16 Byte chunks - Closed (Fixed)
 - RCX-604: [General] rX_Functions.h is not C++ compliant and throws "declaration error" when using G++ for compilation - Closed (Fixed)
 - RCX-606: [General] [NXO] Delivered wscript does not supply rcX include pathes / defines when using librcx_module.a - Closed (Fixed)
 - RCX-608: [Middleware] [DPM] Task priority of system channel mailbox cannot be adjusted - Closed (Fixed)
 - RCX-610: [Kernel] SYSTIMER Interrupt priority cannot be changed (priority 31 is always used internally) - Closed (Fixed)
 - RCX-611: [General] [Feature] Add DeviceDataProvider to allow device data from other sources than security memory - Closed (Fixed)
 - RCX-612: [Drivers] [Feature] Add independent I/O driver to handle all externel I/O's using the same API - Closed (Fixed)
 - RCX-617: [Drivers] [Feature] Add support for SDHC/SDXC cards (if card supports SPI Interface) - Closed (Fixed)
 - RCX-619: [Middleware] Mid_Fat does not handle partitioned SD/MMC cards correctly - Closed (Fixed)
 - RCX-620: [Kernel] Waiting on a queue with rX_EveWaitForMultiple() results in the packets being lost - Closed (Fixed)
 - RCX-621: [Drivers] Drv_Fiq always returns invalid handle for all function calls - Closed (Fixed)
 - RCX-623: [Drivers] Drv_EddSendCbk accepts invalid Sendbuffer (parameter check missing) - Closed (Fixed)
 - RCX-624: [Drivers] [netX10/50] DrvSpi does not clear Interrupt correctly (resulting in continuous interrupt) - Closed (Fixed)
 - RCX-626: [Drivers] HalPflsInitialize_CFI(): Possible crash when detecting CFI flash without pre-initialized SRAM controller - Closed (Fixed)
 - RCX-628: [General] [Feature] Provide SDK components in delivered wscript - Closed (Fixed)
 - RCX-631: [Drivers] [Feature] Drv_Hif should confirm DMA interrupt before calling registered callback (to avoid application register accesses) - Closed (Fixed)
 - RCX-633: [Kernel] Deleting a task waiting on an object and deleting the object later, results in deleted task trying to be scheduled -> crash - Closed (Fixed)
 - RCX-634: [Kernel] rX_EveWaitForEventGroup() returns all Event bits, instead of only providing the requested (masked) bits - Closed (Fixed)
 - RCX-635: [Kernel] rX_SemPutSemaphore() may ommit scheduling task, if the same semaphore is increased in the woken up task with higher priority - Closed (Fixed)
 - RCX-636: [General] [Feature] Provide chip-specific default start-code in chip libraries (init_netX.S) - Closed (Fixed)

V2.1.4.0 (2013-01-21)
---------------------
 - RCX-554: [Drivers] [netX10/50/51] Drv_I2c: Driver routines may stall in case of bus arbitration loss - Closed (Fixed)
 - RCX-579: [Drivers] [netX51] Drv_Urt does not deliver a callback for each received byte if used with USB (HW unit does not deliver IRQ per byte) - Closed (Fixed)
 - RCX-581: [General] [Feature] Function to get the runtime of a task - Closed (Fixed)
 - RCX-585: [Drivers] [netX10/51] Licenseflags are not read from Security Memory and cannot be inserted into DPM - Closed (Fixed)
 - RCX-587: [Middleware] RCX_DIR_LIST_REQ does not evaluate passed sub-directory (always lists channel base directory) - Closed (Fixed)
 - RCX-588: [General] Passing scheduler in RX_ENTERKERNEL_PARAM_T discards const qualifier - Closed (Fixed)
 - RCX-589: [Middleware] RCX_FIRMWARE_IDENTIFY_REQ with Channel=Systemchannel does not return correct rcX Version - Closed (Fixed)
 - RCX-590: [Drivers] Configuration of SPI port fails if port is already opened by another task (rcXV2.0 compatibility issue) - Closed (Fixed)
 - RCX-592: [General] [Feature] Switch buildsystem from Scons to waf - Closed (Fixed)
 - RCX-593: [Drivers] [netX51/50/10] Drv_I2c: Receive data may fail for low speed modes - Closed (Fixed)
 - RCX-594: [Middleware] Mid_FatCloseFile() fails if working directory has changed since opening the file - Closed (Fixed)
 - RCX-595: [General] Command RCX_FIRMWARE_RESET_REQ: Wrong packet length accepted - Closed (Fixed)
 - RCX-597: [Middleware] GET_COMMON_STATE_REQ delivers old data for ulCommunicationCOS if host does not handle COS flags in DPM - Closed (Fixed)
 - RCX-598: [Middleware] Mid_FatChangeDirectory always starts at root directory, thus is unable to change into directories below level 1 (e.g. \PORT0\SX) - Closed (Fixed)
 - RCX-600: [Middleware] [DPM] Pending RX Packet count in mailboxes is sometimes wrong - Closed (Fixed)
 - RCX-601: [General] [Feature] Header file for included md5 routines should be made available to user - Closed (Fixed)

V2.1.3.0 (2012-09-25)
---------------------
 - RCX-574: [Drivers] Drv_EddSend does not calculate IP checksum on outgoing UDP packets for applications that registered via Drv_EddRegisterUdpCb() - Closed (Fixed)
 - RCX-575: [General] Delivered wscript is missing includes for SHM API (rcx_hif_cifx) - Closed (Fixed)
 - RCX-580: [Kernel] CPU Load / Task Runtime measurement does not respect time spent in Interrupt - Closed (Fixed)

V2.1.2.0 (2012-08-21)
---------------------
 - RCX-407: [Drivers] DrvHifSync not available on shared memory. - Closed (Fixed)
 - RCX-473: [General] TLR_TSK_CREATE returns invalid task handle if created task has no name - Closed (Fixed)
 - RCX-474: [Kernel] Unable to get a handle for Tasks that have been created without name - Closed (Fixed)
 - RCX-493: [Kernel] [Feature] Allow removing task diagnostics field that was added using rX_DiaCreateInformationField() - Closed (Fixed)
 - RCX-519: [Middleware] [Feature] MidRtc: Initial time introduced, enhanced error checking included, support for internal RTC on netX100 added - Closed (Fixed)
 - RCX-527: [Middleware] TIME_CMD_GETSTATE may deliver wrong RTC type - Closed (Fixed)
 - RCX-528: [Middleware] Initialization of external RTC (PCF8563) failed after backup power loss - Closed (Fixed)
 - RCX-533: [Drivers] 2-Port Switch may send frames on wrong port due to wrong access to Port learning table (depends on MAC address) - Closed (Fixed)
 - RCX-534: [Drivers] [netX10/51] Drv_Spi: Driver does not work in standard SPI mode if SQI core was in SQIROM mode before - Closed (Fixed)
 - RCX-535: [Drivers] Drv_Sfl: W25Q32BV flash needs inital reset command to ensure that standard SPI instructions are always recognized - Closed (Fixed)
 - RCX-536: [Drivers] [netX10/51] Drv_Led: Linking fails if function level linking is disabled (unresolved reference to HifPio driver) - Closed (Fixed)
 - RCX-537: [General] [netX10] SQI Sample LD File uses undefined reference to INTRAM (should be INTRAM0_3) - Closed (Fixed)
 - RCX-538: [General] [Feature] Sample LD file for netX51 SQIROM/XiP mode - Closed (Fixed)
 - RCX-539: [General] [netX51] Missing EDD parameters for RPEC/TPEC (in rX_Config.h) - Closed (Fixed)
 - RCX-540: [General] TLR: Linking may fail due to multiple definition  of 'strupr' - Closed (Fixed)
 - RCX-541: [Drivers] [Feature] Support for Winbond W25Q128BV - Closed (Fixed)
 - RCX-544: [Drivers] [Feature] LED configuration of 2-Port Switch should be configurable - Closed (Fixed)
 - RCX-546: [Drivers] Unable to remount volume after successful unmount - Closed (Fixed)
 - RCX-549: [Middleware] RX_SYSTEM handles RCX_FIRMWARE_IDENTIFY_REQ - Closed (Fixed)
 - RCX-552: [Middleware] Call to Mid_Fat function always causes an exception if the volume wasn't mounted successfully before - Closed (Fixed)
 - RCX-553: [Drivers] Mid_FatFormat ignores config parameter "fPrtn" and formats volume as detected on first mount - Closed (Fixed)
 - RCX-555: [Drivers] [netX100/500] Ethernet Standard MAC does not support external PHY's --> Remove XC Code - Closed (Fixed)
 - RCX-557: [Drivers] [netX51/52] rX_DevGetChipType does not differentiate between netX51 and netX52 - Closed (Fixed)
 - RCX-558: [Middleware] [Tweak] Mid_LedSetScript parameter patLedScript should be const - Closed (Fixed)
 - RCX-559: [Drivers] [netX10/50/51] I2C Driver may suppress STOP condition - Closed (Fixed)
 - RCX-561: [Kernel] rX_TimCreateTimer is not thread-safe and may reject to create timers if called reentrantly from multiple tasks - Closed (Fixed)
 - RCX-563: [Kernel] rX_TimGetTime does not deliver remaining time for elapsed One-Shot Counters - Closed (Fixed)
 - RCX-567: [Drivers] [netX10/51] One shot mode of hardware timer broken - Closed (Fixed)
 - RCX-568: [Drivers] [Feature] Hardware timer should support reconfiguration of timer period during runtime - Closed (Fixed)
 - RCX-569: [Drivers] [Feature][netX10/51] Handle GPIO timer functionality by the timer driver - Closed (Fixed)
 - RCX-570: [Kernel] [netX100] Passing a non 16kB aligned MMU Table Base address crashes netX, but should throw an error - Closed (Fixed)
 - RCX-571: [Drivers] MTU size identification of the mailbox packet queue always fails - Closed (Fixed)

V2.1.1.0 (2012-05-04)
---------------------
Changed:
 - Complete rcX V2.0 Kernel rewrite, with new scheduling options
 - Internal structural changes, for optimizing size and performance
 - Compiled using new ARM EABI toolchain

Added:
 - netX10 Support
 - netX51 Support

Removed:
 - Unused Kernel Modules:
   * Barriers (rX_Bar)
   * Fault Logging Module (rX_Flt)
   * Finite State Machine (rX_Fsm)
   * Verbose printf (rX_Vbs)
   * Mailboxes (rX_Mbx)
